The Victory lets us add charts and data visualization into our React app.
In this article, we’ll look at how to add charts into our React app with Nivo.
Bump Chart
We can add bar charts into our React app with Nivo.
First, we have to install the @nivo/bump package by running:
npm i @nivo/bump
For instance, we can write:
import React from "react";
import { ResponsiveBump } from "@nivo/bump";
const data = [
{
id: "1",
data: [
{
x: 2000,
y: 7
},
{
x: 2001,
y: 11
},
{
x: 2002,
y: 2
},
{
x: 2003,
y: 5
},
{
x: 2004,
y: 1
}
]
},
{
id: "2",
data: [
{
x: 2000,
y: 6
},
{
x: 2001,
y: 9
},
{
x: 2002,
y: 7
},
{
x: 2003,
y: 4
},
{
x: 2004,
y: 7
}
]
},
{
id: "3",
data: [
{
x: 2000,
y: 12
},
{
x: 2001,
y: 6
},
{
x: 2002,
y: 6
},
{
x: 2003,
y: 12
},
{
x: 2004,
y: 2
}
]
},
{
id: "4",
data: [
{
x: 2000,
y: 5
},
{
x: 2001,
y: 1
},
{
x: 2002,
y: 3
},
{
x: 2003,
y: 2
},
{
x: 2004,
y: 4
}
]
},
{
id: "5",
data: [
{
x: 2000,
y: 2
},
{
x: 2001,
y: 4
},
{
x: 2002,
y: 11
},
{
x: 2003,
y: 8
},
{
x: 2004,
y: 3
}
]
},
{
id: "6",
data: [
{
x: 2000,
y: 1
},
{
x: 2001,
y: 5
},
{
x: 2002,
y: 9
},
{
x: 2003,
y: 10
},
{
x: 2004,
y: 9
}
]
},
{
id: "7",
data: [
{
x: 2000,
y: 3
},
{
x: 2001,
y: 12
},
{
x: 2002,
y: 12
},
{
x: 2003,
y: 7
},
{
x: 2004,
y: 6
}
]
},
{
id: "8",
data: [
{
x: 2000,
y: 11
},
{
x: 2001,
y: 2
},
{
x: 2002,
y: 5
},
{
x: 2003,
y: 9
},
{
x: 2004,
y: 5
}
]
},
{
id: "9",
data: [
{
x: 2000,
y: 10
},
{
x: 2001,
y: 3
},
{
x: 2002,
y: 8
},
{
x: 2003,
y: 3
},
{
x: 2004,
y: 11
}
]
},
{
id: "10",
data: [
{
x: 2000,
y: 8
},
{
x: 2001,
y: 10
},
{
x: 2002,
y: 10
},
{
x: 2003,
y: 1
},
{
x: 2004,
y: 8
}
]
},
{
id: "11",
data: [
{
x: 2000,
y: 4
},
{
x: 2001,
y: 8
},
{
x: 2002,
y: 1
},
{
x: 2003,
y: 6
},
{
x: 2004,
y: 12
}
]
},
{
id: "12",
data: [
{
x: 2000,
y: 9
},
{
x: 2001,
y: 7
},
{
x: 2002,
y: 4
},
{
x: 2003,
y: 11
},
{
x: 2004,
y: 10
}
]
}
];
const MyResponsiveBump = ({ data }) => (
<ResponsiveBump
data={data}
margin={{ top: 40, right: 100, bottom: 40, left: 60 }}
colors={{ scheme: "spectral" }}
lineWidth={3}
activeLineWidth={6}
inactiveLineWidth={3}
inactiveOpacity={0.15}
pointSize={10}
activePointSize={16}
inactivePointSize={0}
pointColor={{ theme: "background" }}
pointBorderWidth={3}
activePointBorderWidth={3}
pointBorderColor={{ from: "serie.color" }}
axisTop={{
tickSize: 5,
tickPadding: 5,
tickRotation: 0,
legend: "",
legendPosition: "middle",
legendOffset: -36
}}
axisRight={null}
axisBottom={{
tickSize: 5,
tickPadding: 5,
tickRotation: 0,
legend: "",
legendPosition: "middle",
legendOffset: 32
}}
axisLeft={{
tickSize: 5,
tickPadding: 5,
tickRotation: 0,
legend: "ranking",
legendPosition: "middle",
legendOffset: -40
}}
/>
);
export default function App() {
return (
<div style={{ height: 300, width: 400 }}>
<MyResponsiveBump data={data} />
</div>
);
}
We add the data for our our chart in the data array.
And we pass that into the data prop of the ResponsiveBump component.
The colors prop sets the series color.
lineWidth has the width of the lines in pixels.
activeLineWidth has the width of the lines in pixels.
We set similar settings with the pintSize .
pointColor has the point color.
pointBorderWidth has the point border width.
axisTop has the settings for the top axis.
tickSize has the tick size. tickPadding has the tick padding.
We have similar settings for axisBottom and axisLeft to configure the bottom and left axes.
Conclusion
We can add bump charts easily into our React app with Nivo.